package com.njtoyo.taxi.admin.mapper.master.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.njtoyo.taxi.admin.mapper.master.enums.driverNotifyMessage.MediaCategory;
import com.njtoyo.taxi.admin.mapper.master.enums.driverNotifyMessage.PriorityCategory;
import com.njtoyo.taxi.admin.mapper.master.enums.driverNotifyMessage.Scope;
import com.njtoyo.taxi.admin.mapper.master.enums.driverNotifyMessage.State;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 司机通知消息
 * </p>
 *
 * @author Dell
 * @since 2021-06-28
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class DriverNotifyMessage implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 司机运营区域
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long driverRegionId;

    /**
     * 司机所属公司Id
     */
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private Long companyId;

    /**
     * 发布范围 0:all[全部],1:region[运营区],2:company[公司]
     */
    private Scope scope;

    /**
     * 标题
     */
    private String title;

    /**
     * 语音内容
     */
    private String voiceContent;

    /**
     * 头图
     */
    private String headImage;

    /**
     * 详情摘要
     */
    private String detailDigest;

    /**
     * 详情
     */
    private String detail;

    /**
     * 媒体类型 0:text[纯文本],1:image[图文],2:video[视频]
     */
    private MediaCategory mediaCategory;

    /**
     * 优先级类型 0:common[普通],1:major[主要],2:important[重要]
     */
    private PriorityCategory priorityCategory;

    /**
     * 定时发布时间
     */
    private Long regularReleaseTime;

    /**
     * 发布状态 0:ready[准备中],1:done[已发布]
     */
    private State state;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private Date createdAt;

    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updatedAt;
}
